Thèse en cours

Étendre l'acquisition de contraintes pour une analyse de code inverse en boîte noire efficace

FR  |  
EN
Auteur / Autrice : Sarra Djebour
Direction : Nadjib Lazaar
Type : Projet de thèse
Discipline(s) : Informatique
Date : Inscription en doctorat le 01/02/2024
Etablissement(s) : Université de Montpellier (2022-....)
Ecole(s) doctorale(s) : École doctorale Information, Structures, Systèmes (Montpellier ; 2015-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire d'informatique, de robotique et de micro-électronique (Montpellier ; 1992-....)
Equipe de recherche : Département Informatique

Résumé

FR  |  
EN

Les pré- et post-conditions, aussi appelées contrats, permettent de spécifier formellement le comportement d'une fonction ou d'un bloc de code. Elles revêtent ainsi une importance capitale pour améliorer la sécurité des logiciels et se sont révélées essentielles dans divers domaines, de l'ingénierie logicielle à la vérification de code. Cependant, il est fréquent que ces contrats ne soient pas fournis avec le code source et doivent donc être rétro-ingéniés manuellement, ce qui est une tâche complexe et fastidieuse. Dans ce projet, nous proposons de comprendre comment le machine learning symbolique, récemment proposé pour inférer des contrats de fonctions, peut être étendue pour gérer de manière automatique des contrats de fonctions de plus en plus sophistiqués. Différentes pistes seront étudiées comme l'extension récente de l'acquisition de contraintes aux problèmes disjonctifs ou les approches neuro-symboliques. L'objectif sera ainsi de réaliser une inférence plus précise et plus flexible tout en étant capables d'inférer ces contrats de manière efficace, même dans des scénarios où les approches statiques traditionnelles échouent, tels que les codes hautement optimisés ou obfusqués. Ce projet de recherche vise à repousser les limites de l'inférence de contrats de fonctions et du machine learning symbolique en exploitant les spécificités du problème de l'analyse de code (ex: possibilité d'exécuter un grand nombre de fois le code analysé). En développant des méthodes robustes et efficaces, nous cherchons à automatiser un processus fastidieux et à renforcer la sécurité et la fiabilité des logiciels. Ce sujet de recherche offre une occasion passionnante d'explorer les domaines de l'apprentissage automatique, de l'informatique symbolique et de la sécurité logicielle tout en contribuant à des avancées significatives dans le domaine de l'ingénierie logicielle.